{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](https://ws2.sinaimg.cn/large/006tNc79ly1fmebdrkuawj30b3032a9w.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# PyTorch 介绍"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "PyTorch 是由 Torch7 团队开源的，这也是Facebook 的 AI 研究团队发布了一个 Python 工具包，据该项目官网介绍，是一个 Python 优先的深度学习框架，能够在强大的 GPU 加速基础上实现张量和动态神经网络。\n",
    "\n",
    "- [官网](http://pytorch.org/)\n",
    "- [Github](https://github.com/pytorch/pytorch)\n",
    "\n",
    "目前除了 Facebook 之外，也有大量的机构正在使用 PyTorch\n",
    "\n",
    "![](https://ws2.sinaimg.cn/large/006tNc79ly1fmebl3ayfij30kk0c2aac.jpg)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "PyTorch 的前身是 Torch，其是一个十分老牌、对多维矩阵数据进行操作的张量（tensor ）库，在机器学习和其他数学密集型应用有广泛应用，但由于其语言采用 Lua，导致在国内一直很小众，如今使用 Python 语言强势归来，快速的赢得了大量使用者。\n",
    "\n",
    "PyTorch 提供了两种高层面的功能：\n",
    "- 使用强大的 GPU 加速的 Tensor 计算（类似 numpy）\n",
    "- 构建于基于 autograd 系统的深度神经网络\n",
    "\n",
    "所以使用 PyTorch 的原因通常有两个：\n",
    "- 作为 numpy 的替代，以便使用强大的 GPU 加速；\n",
    "- 将其作为一个能提供最大灵活性和速度的深度学习研究平台"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "PyTorch 作为一个 Python 优先的动态图框架，有下面几个特点"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Python 优先\n",
    "PyTorch 不是简单地在整体 C++ 框架上绑定 Python，他深入构建在 Python 之上，你可以像使用 numpy/scipy/scikit-learn 那样轻松地使用 PyTorch，也可以用你喜欢的库和包在 PyTorch 中编写新的神经网络层，尽量让你不用重新发明轮子。\n",
    "\n",
    "### 命令式体验\n",
    "PyTorch 的设计思路是线性、直观且易于使用。当你需要执行一行代码时，它会忠实执行。PyTorch 没有异步的世界观。当你打开调试器，或接收到错误代码和 stack trace 时，你会发现理解这些信息是非常轻松的。Stack-trace 点将会直接指向代码定义的确切位置。我们不希望你在 debug 时会因为错误的指向或异步和不透明的引擎而浪费时间。\n",
    "\n",
    "### 快速精益\n",
    "PyTorch 具有轻巧的框架，集成了各种加速库，如 Intel MKL、英伟达的 CuDNN 和 NCCL 来优化速度。在其核心，它的 CPU 和 GPU Tensor 与神经网络后端（TH、THC、THNN、THCUNN）被编写成了独立的库，带有 C99 API。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 安装\n",
    "PyTorch 的安装非常方便，可以使用 Anaconda 进行安装，也可以使用 pip 进行安装，比如\n",
    "\n",
    "使用 conda 进行安装   \n",
    "`conda install pytorch torchvision -c pytorch`\n",
    "\n",
    "或者使用 pip   \n",
    "`pip install http://download.pytorch.org/whl/cu80/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl \n",
    "pip install torchvision`\n",
    "\n",
    "目前只支持 Mac OSX 和 Linux 系统，Windows 系统在不久之后也会支持，更多详细信息可以访问[官网](http://pytorch.org/)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "mx",
   "language": "python",
   "name": "mx"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
